#pragma once

#include "NFServerComm/NFServerCommon/NFIDescStore.h"
#include "NFServerComm/NFServerCommon/NFIDescTemplate.h"
#include "NFLogicCommon/NFDescStoreMacrosDefine.h"
#include "NFLogicCommon/NFDescStoreTypeDefines.h"
#include "E_ActivityEight.nanopb.h"
#ifndef MAX_ACTIVITYEIGHT_ACTIVITYEIGHT_NUM
#define MAX_ACTIVITYEIGHT_ACTIVITYEIGHT_NUM 110
#endif

class ActivityEightActivityEightDesc : public NFI_DESC_TEMPLATE_MACRO(ActivityEightActivityEightDesc, E_ActivityEightActivityEight, EOT_CONST_ACTIVITYEIGHT_ACTIVITYEIGHT_DESC_ID, MAX_ACTIVITYEIGHT_ACTIVITYEIGHT_NUM)
public:
	ActivityEightActivityEightDesc();
	virtual ~ActivityEightActivityEightDesc();
	int CreateInit();
	int ResumeInit();
public:
	int Load(NFResDb *pDB) override;
	int LoadDB(NFResDb *pDB) override;
	int CheckWhenAllDataLoaded() override;
	std::vector<const E_ActivityEightActivityEight*> GetDescByGroupId(int64_t groupId) const;
	std::vector<const E_ActivityEightActivityEight*> GetDescByType(int64_t type) const;
private:
	NFShmHashMultiMap<int64_t, uint64_t, MAX_ACTIVITYEIGHT_ACTIVITYEIGHT_NUM> m_groupIdIndexMap;
	NFShmHashMultiMap<int64_t, uint64_t, MAX_ACTIVITYEIGHT_ACTIVITYEIGHT_NUM> m_typeIndexMap;
};
